package net.servir.diagnostico.web.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import net.servir.diagnostico.model.IdentificacionParticipante;
import net.servir.diagnostico.model.Pregunta;
import net.servir.diagnostico.model.jsp.JspAmbientacion;
import net.servir.diagnostico.service.DiagnosticoService;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class AmbientacionController {

	/*
	 * @RequestMapping("/ambientacionSnip.htm") public
	 * 
	 * @ModelAttribute("ambientacionSnip") List ambientacionSnip() { return
	 * null; }
	 */
	@Autowired
	private DiagnosticoService diagnosticoService;

	@RequestMapping("/ambientacion.htm")
	public @ModelAttribute("ambientacion")
	JspAmbientacion inicioAmbientacion(HttpServletRequest request,
			HttpServletResponse response) {

		JspAmbientacion obj = new JspAmbientacion();
		IdentificacionParticipante identParticipante = null;

		HttpSession sesion = request.getSession();
		String redirect = "";
		if (sesion.getAttribute("participante") == null) {
			redirect = "acceso.htm";
			try {
				response.sendRedirect(redirect);
			} catch (Exception e) {
				obj.setMensaje_usuario(e.getMessage());
			}
		} else
			identParticipante = (IdentificacionParticipante) sesion
					.getAttribute("participante");

		Number segundosRestantes = 0;
		Number idTest = 0;
		idTest = identParticipante.getId_test();

		segundosRestantes = diagnosticoService.obtenerSegundosRestantes(idTest,
				"ESPERA");

		obj.setSegundos_restantes(segundosRestantes);

		obj.setIdent_participante(identParticipante);

		Pregunta pregunta = diagnosticoService.obtenerPregunta(
				identParticipante.getId_test_generado(), 1);

		String redirectTO = "";

		if (pregunta == null) {
			try {
				response.sendRedirect("accesoDenegado.htm");
			} catch (Exception e) {
				obj.setMensaje_usuario(e.getMessage());
			}
		} else {

			if (pregunta.isInformado())
				redirectTO = "pruebaDenegada.htm";

			if (!pregunta.getCod_sesion().equals("-"))
				redirectTO = "examen.htm";

			try {
				if (!redirectTO.equals(""))
					response.sendRedirect(redirectTO);

			} catch (Exception e) {
				obj.setMensaje_usuario(e.getMessage());
			}
		}

		return obj;
	}

}
